package com.aishua.fire.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import com.aishua.fire.jpa.entity.Dictionary;
import com.aishua.fire.mapper.dto.dictionary.DictionaryDictListDto;
import com.aishua.fire.mapper.dto.dictionary.DictionaryDto;
import com.aishua.fire.mapper.dto.dictionary.DictionaryListDto;

@Component
public interface DictionaryMapper {

	/**
	 * 查询字典表的id和name(字典帮助)
	 */
	List<DictionaryDto> findIdAndName(@Param(value="typeCode") String typeCode);
	/**
	 * 查出大类list
	 */
	List<DictionaryDictListDto> findDicList();

	/**
	 * 查出小类list
	 */
	List<DictionaryListDto> findDictionaryList(@Param(value="typeCode") String typeCode);

	/**
	 * 大类添加时,重复性验证
	 */
	Long isRepeatDict(@Param(value="typeCode") String typeCode,@Param(value="typeValue") String typeValue);
	
	/**
	 * 大类修改时,重复性验证
	 */
	Long isRepeatTypeValue(@Param(value="typeCode") String typeCode,@Param(value="typeValue") String typeValue);
	
	/**
	 * 大类添加
	 */
	void addTypeCode(Dictionary dictionary);
	
	/**
	 * 大类修改
	 */
	void updateTypeCode(Dictionary dictionary);
	
	/**
	 * 类删除
	 */
	void deleteTypeCode(@Param(value="typeCode") String typeCode);
	
	/**
	 * 小类添加时,重复性验证
	 */
	Long isRepeatDictNameAdd(@Param(value="typeCode") String typeCode,@Param(value="dictName") String dictName);
	
	/**
	 * 小类修改时,重复性验证
	 */
	Long isRepeatDictNameUpdate(@Param(value="typeCode") String typeCode,
								@Param(value="dictName") String dictName,@Param(value="id") Integer id);
	
	/**
	 * 小类添加(dictName不为空)
	 */
	void addDictName(Dictionary dictionary);
	
	/**
	 * 小类修改
	 */
	void updateDictName(Dictionary dictionary);
	
	/**
	 * 小类删除
	 */
	void deleteDictName(@Param(value="id") Integer id);
	
}
